package org.example.domain.model.entity.url.resp;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.example.domain.model.entity.url.vo.*;

import java.util.List;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Schema(description = "短链接监控响应")
public class UrlShortenerStatsResp {

    @Schema(description = "访问量")
    private Integer pv;

    @Schema(description = "独立访客数")
    private Integer uv;

    @Schema(description = "独立IP数")
    private Integer uip;

    @Schema(description = "基础访问详情")
    private List<UrlShortenerAccessLogsVo> dailyList;

    @Schema(description = "地区访问详情")
    private List<UrlShortenerStatsLocaleVo> localeCnStatsList;

    @Schema(description = "小时访问详情")
    private List<Integer> hourStats;

    @Schema(description = "高频访问IP详情")
    private List<UrlShortenerStatsTopIpVo> topIpStatsList;

    @Schema(description = "一周访问详情")
    private List<Integer> weekdayStats;

    @Schema(description = "浏览器访问详情")
    private List<UrlShortenerStatsBrowserVo> browserStatsList;

    @Schema(description = "操作系统访问详情")
    private List<UrlShortenerStatsOsVo> osStatsList;

    @Schema(description = "访客访问类型详情")
    private List<UrlShortenerStatsUvVo> uvTypeStatsList;

    @Schema(description = "访问设备类型详情")
    private List<UrlShortenerStatsDeviceVo> deviceStatsList;

    @Schema(description = "访问网络类型详情")
    private List<UrlShortenerStatsNetworkVo> networkStatsList;
}
